﻿namespace CSharpPro.Properties._0930;

public class Demo
{
    //第一题
    public void TestPrint1(int x, int y, int z)
    {
        int temp = 0;
        if (x > y)
        {
            temp = x;
            x = y;
            y = temp;
        }

        if (x > z)
        {
            temp = x;
            x = z;
            z = temp;
        }
        if(y > z)
        {
            temp = y;
            y = z;
            z = temp;
        }
        Console.WriteLine($"从小到大顺序的结果为：{x},{y},{z}");
        
    }

    public void TestPrint2()
    {
        int sum = 0;
        
        Console.WriteLine("1-100之间所有不是7的倍数且不包含7的数字：");
        
        for (int i = 1; i <= 100; i++)
        {
            // 检查是否是7的倍数
            bool isMultipleOf7 = i % 7 == 0;
            
            // 检查是否包含数字7
            bool contains7 = (i % 10 == 7) || (i / 10 == 7);
            
            // 判断是否符合条件
            if (!isMultipleOf7 && !contains7)
            {
                Console.Write(i + " ");
                sum += i;
            }
        }
        
        Console.WriteLine("\n\n这些数字的总和是：" + sum);
    }

    public void TestPrint3()
    {
        for (int i = 1; i <= 9; i++)
        {
            // 内层循环控制每行的列数（1到当前行数）
            for (int j = 1; j <= i; j++)
            {
                // 格式化输出乘法表达式，确保对齐
                Console.Write($"{j}*{i} = {i*j} ");
            }
            // 每行结束后换行
            Console.WriteLine();
        }
    }

    public void TestPrint4(int maxNumber)
    {
        for (int num = 2; num <= maxNumber; num++)
        {
            Console.WriteLine($"{maxNumber}以内的所有完数为：");
            int sumOfFactors = 0;
            
            // 查找当前数字的所有真因子并求和
            for (int i = 1; i < num; i++)
            {
                if (num % i == 0)
                {
                    sumOfFactors += i;
                }
            }
            
            // 判断是否为完数（真因子之和等于自身）
            if (sumOfFactors == num)
            {
                Console.Write(num + " ");
            }
        }
        
        Console.WriteLine();
    }
}